home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
CONTAINER
/
SortedOList.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-09
|
2KB
|
86 lines
#ifdef __GNUG__
#pragma implementation
#endif
#include "SortedOList.h"
#include "Class.h"
//---- SortedObjList -----------------------------------------------------------
NewMetaImpl0(SortedObjList,ObjList);
SortedObjList::SortedObjList(bool order)
{
if ( order == cSortAscending )
SetFlag(SObListAscending);
}
Object *SortedObjList::Add(Object *op)
{
register ObjLink *ll;
register int comp;
if ( IsArgNull("Add", op) )
return 0;
ll= anchor->Next();
while ( ll != anchor ) {
comp= CompareObjects(op, ll->Op());
if ( (Ascending() && comp < 0) || (! Ascending() && comp > 0) ) {
InsertLink(op, ll);
return 0;
}
ll= ll->Next();
}
ObjList::Add(op);
return 0;
}
Object *SortedObjList::AddFirst(Object *op)
{
MayNotUse("AddFirst");
return Add(op);
}
Object *SortedObjList::AddLast(Object *op)
{
MayNotUse("AddLast");
return Add(op);
}
Object *SortedObjList::AddBefore(Object *op, Object *)
{
MayNotUse("AddBefore");
return Add(op);
}
Object *SortedObjList::AddAfter(Object *op, Object *)
{
MayNotUse("AddAfter");
return Add(op);
}
Object *SortedObjList::AddBeforePtr(Object *op, Object *)
{
MayNotUse("AddBeforePtr");
return Add(op);
}
Object *SortedObjList::AddAfterPtr(Object *op, Object *)
{
MayNotUse("AddAfterPtr");
return Add(op);
}
Object *SortedObjList::PutAt(Object *op, int)
{
MayNotUse("PutAt");
return Add(op);
}
int SortedObjList::CompareObjects(Object *op1, Object *op2)
{
return op1->Compare(op2);
}